/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ufes.gpf.sgm.state.incluirPessoa;

import edu.ufes.gpf.sgm.presenter.IncluirPessoaPresenter;
import java.awt.Component;
import java.awt.event.ActionListener;
import javax.swing.JButton;

/**
 *
 * @author Danilo
 */
public abstract class AbstractStateIncluirPessoa
{

    protected IncluirPessoaPresenter objeto;

    public AbstractStateIncluirPessoa(IncluirPessoaPresenter objeto)
    {
        this.objeto = objeto;
        limpaListeners();
    }

    public abstract void salvar();

    public void sair()
    {
        objeto.getView().dispose();
    }

    protected void limpaListeners()
    {

        for (Component c : objeto.getView().getContentPane().getComponents())
        {
            if (c instanceof JButton)
            {
                for (ActionListener al : ((JButton) c).getActionListeners())
                {
                    ((JButton) c).removeActionListener(al);
                }
            }
        }
    }

    protected void liberarTelaPraEdição()
    {
        objeto.getView().getTxtApelido().setEnabled(true);
        objeto.getView().getTxtCidade().setEnabled(true);
        objeto.getView().getTxtCPF().setEnabled(true);
        objeto.getView().getTxtLogradouro().setEnabled(true);
        objeto.getView().getTxtNome().setEnabled(true);
        objeto.getView().getTxtTelefone().setEnabled(true);
        objeto.getView().getCbmUf().setEnabled(true);

    }

    protected void bloquearTelaPraEdição()
    {
        objeto.getView().getTxtApelido().setEnabled(false);
        objeto.getView().getTxtCidade().setEnabled(false);
        objeto.getView().getTxtCPF().setEnabled(false);
        objeto.getView().getTxtLogradouro().setEnabled(false);
        objeto.getView().getTxtNome().setEnabled(false);
        objeto.getView().getTxtTelefone().setEnabled(false);
        objeto.getView().getCbmUf().setEnabled(false);

    }

    protected void limparCampos()
    {
        objeto.getView().getTxtApelido().setText("");
        objeto.getView().getTxtCidade().setText("");
        objeto.getView().getTxtCPF().setText("");
        objeto.getView().getTxtLogradouro().setText("");
        objeto.getView().getTxtNome().setText("");
        objeto.getView().getTxtTelefone().setText("");
        objeto.getView().getCbmUf().setSelectedIndex(0);
    }
}
